home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-01 / dberror.c < prev    next >
Text File  |  1992-09-01  |  19KB  |  587 lines

  1. //============================================================================
  2. //
  3. //  DBERROR.C       - Error parsing & display for TFile
  4. //
  5. //============================================================================
  6. //
  7. //  Call via: DB_Error();
  8. //
  9. //  Example:  if(TfdCreate("MAIL",10,MailFields)==TF_ERROR) DB_Error();
  10. //
  11. //  Returns:  Nothing
  12. //
  13. //============================================================================
  14. //
  15. //  Notes and such:
  16. //  --------------
  17. //  This code is released for the public domain and can be used in any way
  18. //  desired - obviously, don't try to sell this code for profit (nobody would
  19. //  be stupid enough to pay $$ for something this simple anyway)
  20. //
  21. //  Note that TCXL and TFILE are Copyright Innovative Data Concepts
  22. //  any trademarks on TCXL and TFILE also belong to Innovative Data Concepts
  23. //
  24. //  Hopefully the time spent entering all the error messages will benefit
  25. //  someone in addition to myself - I won't go into detail on using these
  26. //  as if you're using TFile and/or TCXL along with a C compiler, you should
  27. //  know enough to make proper use of these routines.  These have been
  28. //  tested (successfully) using Turbo C++ 1.01 and Borland C++ 2.0
  29. //
  30. //  ** You will need to use the appropriate header files for this
  31. //     I am using TCXL coding notations, so:
  32. //
  33. //         In a nutshell:   VOID = void
  34. //                          CTYP = pascal (pascal calling convention
  35. //                                           compiler dependent)
  36. //                          ChrP = char *
  37. //
  38. //============================================================================
  39. //
  40. //  Have fun, and if you want to thank me, call my BBS at 519-357-1943
  41. //
  42. //============================================================================
  43.  
  44.  
  45. VOID CTYP DBErr(ChrP message);
  46.  
  47. VOID DB_Error(NOARG) {
  48.     switch(TfErr) {
  49.         case 100:
  50.             DBErr("Invalid parameters to TfdCreate");
  51.             break;
  52.         case 200:
  53.             DBErr(".DBF File not open in TfdDelete");
  54.             break;
  55.         case 201:
  56.             DBErr("Invalid record number in TfdDelete");
  57.             break;
  58.         case 300:
  59.             DBErr("Not enough memory for dictionary in TfDicInit");
  60.             break;
  61.         case 301:
  62.             DBErr("Inalid dictionary n TfDicAdd");
  63.             break;
  64.         case 302:
  65.             DBErr("Invalid data field in TfDicAdd");
  66.             break;
  67.         case 303:
  68.             DBErr("Not enough memory for entry in TfDicAdd");
  69.             break;
  70.         case 304:
  71.             DBErr("Invalid dictionary in TfDicDel");
  72.             break;
  73.         case 305:
  74.             DBErr("Invalid data field in TfDicDel");
  75.             break;
  76.         case 306:
  77.             DBErr("Invalid dictionary in TfDicFnd");
  78.             break;
  79.         case 307:
  80.             DBErr("Invalid data field in TfDicFnd");
  81.             break;
  82.         case 308:
  83.             DBErr("Invalid dictionary in TfDicClose");
  84.             break;
  85.         case 400:
  86.             DBErr(".DBF file not open in TfFldVal");
  87.             break;
  88.         case 401:
  89.             DBErr(".DBF file not open in TfFldTyp");
  90.             break;
  91.         case 402:
  92.             DBErr(".DBF file not open in TfFldLen");
  93.             break;
  94.         case 403:
  95.             DBErr(".DBF file not open in TfFldDec");
  96.             break;
  97.         case 404:
  98.             DBErr(".DBF file not open in TfFldOfs");
  99.             break;
  100.         case 498:
  101.             DBErr(".DBF file not open in TfFldNam");
  102.             break;
  103.         case 499:
  104.             DBErr("Invalid position in TfFldNam");
  105.             break;
  106.         case 500:
  107.             DBErr(".DBF file not open in TfdInsert");
  108.             break;
  109.         case 501:
  110.             DBErr("Invalid record number in TfdInsert");
  111.             break;
  112.         case 502:
  113.             DBErr("TfdNewRec error in TfdInsert");
  114.             break;
  115.         case 503:
  116.             DBErr("Data file corrupt in TfdInsert");
  117.             break;
  118.         case 504:
  119.             DBErr("Low level read error in TfdInsert");
  120.             break;
  121.         case 505:
  122.             DBErr("Low level write error in TfdInsert");
  123.             break;
  124.         case 506:
  125.             DBErr("TfdWrite error in TfdInsert");
  126.             break;
  127.         case 507:
  128.             DBErr(".DBF file not open in TfdRemove");
  129.             break;
  130.         case 508:
  131.             DBErr("Invalid record number in TfdRemove");
  132.             break;
  133.         case 509:
  134.             DBErr("Low level read error in TfdRemove");
  135.             break;
  136.         case 510:
  137.             DBErr("Low level write error in TfdRemove");
  138.             break;
  139.         case 600:
  140.             DBErr(".DBF file not open in TfdDstruc");
  141.             break;
  142.         case 601:
  143.             DBErr(".DBF file not open in Tfdsize");
  144.             break;
  145.         case 602:
  146.             DBErr(".DBF file not open in TfdFlush");
  147.             break;
  148.         case 603:
  149.             DBErr("TfdClose error in TfdFlush");
  150.             break;
  151.         case 604:
  152.             DBErr("TfdOpen error in TfdFlush");
  153.             break;
  154.         case 605:
  155.             DBErr(".DBF file not open in TfdBuf");
  156.             break;
  157.         case 606:
  158.             DBErr(".DBF file not open in TfdFlds");
  159.             break;
  160.         case 607:
  161.             DBErr(".DBF file not open in TfdVersion");
  162.             break;
  163.         case 700:
  164.             DBErr("Too many files open in TfdOpen");
  165.             break;
  166.         case 701:
  167.             DBErr("Low level open error in TfdOpen");
  168.             break;
  169.         case 702:
  170.             DBErr("Low level read error in TfdOpen");
  171.             break;
  172.         case 703:
  173.             DBErr("Invalid dBase III file in TfdOpen");
  174.             break;
  175.         case 704:
  176.             DBErr("TfmOpen error in TfdOpen");
  177.             break;
  178.         case 705:
  179.             DBErr("Not enough memory for record buffer in TfdOpen");
  180.             break;
  181.         case 706:
  182.             DBErr("Not enough memory for field descriptions in TfdOpen");
  183.             break;
  184.         case 707:
  185.             DBErr("TfDicInit error in TfdOpen");
  186.             break;
  187.         case 708:
  188.         case 709:
  189.             DBErr("Low level read error in TfdOpen");
  190.             break;
  191.         case 710:
  192.             DBErr("Tfdread error in TfdOpen");
  193.             break;
  194.         case 711:
  195.             DBErr(".DBF file not open in Tfdclose");
  196.             break;
  197.         case 712:
  198.             DBErr("Low level read error in Tfdclose");
  199.             break;
  200.         case 713:
  201.             DBErr("Low level write error in Tfdclose");
  202.             break;
  203.         case 714:
  204.             DBErr("TfmClose error in Tfdclose");
  205.             break;
  206.         case 715:
  207.             DBErr("Low level close error in Tfdclose");
  208.             break;
  209.         case 800:
  210.             DBErr(".DBF file not open in TfdRead");
  211.             break;
  212.         case 801:
  213.             DBErr("Invalid record number in TfdRead");
  214.             break;
  215.         case 802:
  216.             DBErr("Low level read error in TfdRead");
  217.             break;
  218.         case 803:
  219.             DBErr(".DBF file not open in TfdWrite");
  220.             break;
  221.         case 804:
  222.             DBErr("Invalid record number in TfdWrite");
  223.             break;
  224.         case 805:
  225.             DBErr("Low level write error in TfdWrite");
  226.             break;
  227.         case 806:
  228.             DBErr(".DBF file not open in TfdNewRec");
  229.             break;
  230.         case 807:
  231.             DBErr(".DBF file not open in TfdRecall");
  232.             break;
  233.         case 808:
  234.             DBErr("Invalid record number in TfdRecall");
  235.             break;
  236.         case 809:
  237.             DBErr("Low level read error in TfdRecall");
  238.             break;
  239.         case 810:
  240.             DBErr("Record not delete error in TfdRecall");
  241.             break;
  242.         case 811:
  243.             DBErr("Low level write error in TfdRecall");
  244.             break;
  245.         case 812:
  246.             DBErr("Low level read error in TfdRecall");
  247.             break;
  248.         case 900:
  249.             DBErr("Unable to create file in TflCreate");
  250.             break;
  251.         case 1000:
  252.         case 1002:
  253.             DBErr("Unable to lock record in TfdRecLock");
  254.             break;
  255.         case 1001:
  256.             DBErr("Low level seek error in TfdRecLock");
  257.             break;
  258.         case 1003:
  259.         case 1005:
  260.             DBErr("Unable to unlock record in TfdRecUnlock");
  261.             break;
  262.         case 1004:
  263.             DBErr("Low level seek error in TfdRecUnlock");
  264.             break;
  265.         case 1006:
  266.         case 1008:
  267.             DBErr("Unable to lock file in TfdFilLock");
  268.             break;
  269.         case 1007:
  270.             DBErr("Low level seek error in TfdFilLock");
  271.             break;
  272.         case 1009:
  273.         case 1011:
  274.             DBErr("Unable to unlock file in TfdFilUnlock");
  275.             break;
  276.         case 1010:
  277.             DBErr("Low level seek error in TfdFilUnlock");
  278.             break;
  279.         case 1200:
  280.             DBErr("Unable to open file in TflOpen");
  281.             break;
  282.         case 1201:
  283.             DBErr("Unable to close file in TflOpen");
  284.             break;
  285.         case 1300:
  286.             DBErr("Low level seek error in TflRead");
  287.             break;
  288.         case 1301:
  289.             DBErr("Unable to read file in TflRead");
  290.             break;
  291.         case 1302:
  292.             DBErr("Low level seek error in TflWrite");
  293.             break;
  294.         case 1303:
  295.             DBErr("Unable to write file in TflWrite");
  296.             break;
  297.         case 1304:
  298.             DBErr("Unable to seek file in TflSeek");
  299.             break;
  300.         case 1400:
  301.             DBErr("Low level create error in TfmCreate");
  302.             break;
  303.         case 1401:
  304.             DBErr("Low level close error in TfmCreate");
  305.             break;
  306.         case 1402:
  307.             DBErr("Low level open error in TfmCreate");
  308.             break;
  309.         case 1403:
  310.         case 1404:
  311.             DBErr("Low level write error in TfmCreate");
  312.             break;
  313.         case 1405:
  314.             DBErr("Low level clsoe error in TfmCreate");
  315.             break;
  316.         case 1500:
  317.             DBErr(".DBF file not open in TfdMemoEdit");
  318.             break;
  319.         case 1501:
  320.             DBErr("Not enough memory for memo buffer in TfmEdit");
  321.             break;
  322.         case 1502:
  323.             DBErr("TfmRead error in TfmEdit");
  324.             break;
  325.         case 1503:
  326.             DBErr("Low level create error in TfmEdit");
  327.             break;
  328.         case 1504:
  329.             DBErr("Low level write error in TfmEdit");
  330.             break;
  331.         case 1505:
  332.             DBErr("Low level close error in TfmEdit");
  333.             break;
  334.         case 1506:
  335.             DBErr("system() error in TfmEdit");
  336.             break;
  337.         case 1507:
  338.             DBErr("Not enough memory for memo buffer in TfmEdit");
  339.             break;
  340.         case 1508:
  341.             DBErr("Low level open error in TfmEdit");
  342.             break;
  343.         case 1509:
  344.             DBErr("Low level read error in TfmEdit");
  345.             break;
  346.         case 1510:
  347.             DBErr("Low level close error in TfmEdit");
  348.             break;
  349.         case 1511:
  350.             DBErr("TfmWrite error in TfmEdit");
  351.             break;
  352.         case 1600:
  353.             DBErr(".DBF file not open in TfmFlush");
  354.             break;
  355.         case 1601:
  356.             DBErr("TfdClose error in TfmFlush");
  357.             break;
  358.         case 1602:
  359.             DBErr("TfdOpen error in TfmFlush");
  360.             break;
  361.         case 1603:
  362.             DBErr("Not enough memory for work buffer in TfmPack");
  363.             break;
  364.         case 1604:
  365.             DBErr("TfmCreate error in TfmPack");
  366.             break;
  367.         case 1605:
  368.             DBErr("TfmOpen error in TfmPack");
  369.             break;
  370.         case 1606:
  371.             DBErr("Invalid field type in TfmPack");
  372.             break;
  373.         case 1607:
  374.             DBErr("TfmClose error in TfmPack");
  375.             break;
  376.         case 1608:
  377.             DBErr("TfdClose error in TfmPack");
  378.             break;
  379.         case 1609:
  380.             DBErr("TfdOpen error in TfmPack");
  381.             break;
  382.         case 1700:
  383.             DBErr("Too many files open in TfmOpen");
  384.             break;
  385.         case 1701:
  386.             DBErr("Low level open error in TfmOpen");
  387.             break;
  388.         case 1702:
  389.             DBErr("Low level read error in TfmOpen");
  390.             break;
  391.         case 1703:
  392.             DBErr("Low level write error in TfmClose");
  393.             break;
  394.         case 1704:
  395.             DBErr("Low level close error in TfmClose");
  396.             break;
  397.         case 1800:
  398.             DBErr(".DBF file not open in TfdMemoRead");
  399.             break;
  400.         case 1801:
  401.             DBErr(".DBT file not open in TfmRead");
  402.             break;
  403.         case 1802:
  404.             DBErr("Not enough memory for memo buffer in TfmRead");
  405.             break;
  406.         case 1803:
  407.             DBErr("Low level read error in TfmRead");
  408.             break;
  409.         case 1804:
  410.             DBErr(".DBT file corrupt in TfmRead");
  411.             break;
  412.         case 1805:
  413.             DBErr(".DBF file not open in TfdMemoWrite");
  414.             break;
  415.         case 1806:
  416.             DBErr("Low level read error in TfmWrite");
  417.             break;
  418.         case 1807:
  419.             DBErr("Low level seek error in TfmWrite");
  420.             break;
  421.         case 1808:
  422.             DBErr(".DBT file corrupt in TfmWrite");
  423.             break;
  424.         case 1809:
  425.             DBErr("Not enough memory for gap buffer in TfmWrite");
  426.             break;
  427.         case 1810:
  428.             DBErr("Not enough memory for memo buffer in TfmWrite");
  429.             break;
  430.         case 1811:
  431.             DBErr("Low level write error in TfmWrite");
  432.             break;
  433.         case 1812:
  434.             DBErr("Low level write error in TfmWrite");
  435.             break;
  436.         case 1900:
  437.             DBErr("Invalid key length in TfiCreate");
  438.             break;
  439.         case 1901:
  440.             DBErr("Low level create error in TfiCreate");
  441.             break;
  442.         case 1902:
  443.             DBErr("Low level close error in TfiCreate");
  444.             break;
  445.         case 1903:
  446.             DBErr("Invalid key type in TfiCreate");
  447.             break;
  448.         case 1904:
  449.             DBErr("Key expression too long in TfiCreate");
  450.             break;
  451.         case 1905:
  452.             DBErr("Invalid key dup type in TfiCreate");
  453.             break;
  454.         case 1906:
  455.             DBErr("Low level open error in TfiCreate");
  456.             break;
  457.         case 1907:
  458.             DBErr("Low level write error in TfiCreate");
  459.             break;
  460.         case 1908:
  461.             DBErr("Low level write error in TfiCreate");
  462.             break;
  463.         case 1909:
  464.             DBErr("Low level close error in TfiCreate");
  465.             break;
  466.         case 2000:
  467.             DBErr(".NDX file not open in TfiDelKey");
  468.             break;
  469.         case 2001:
  470.             DBErr("No keys in .NDX file in _TfDelKey");
  471.             break;
  472.         case 2100:
  473.             DBErr(".NDX file not open in TfiGetKey");
  474.             break;
  475.         case 2101:
  476.             DBErr("No keys in .NDX file in _TfGetKey");
  477.             break;
  478.         case 2102:
  479.             DBErr("No exact key match in _TfGetKey");
  480.             break;
  481.         case 2103:
  482.             DBErr("Key not found in _TfGetKey");
  483.             break;
  484.         case 2200:
  485.             DBErr(".NDX file not open in TfiGetFst");
  486.             break;
  487.         case 2201:
  488.             DBErr("No keys in .NDX file in _TfGetFst");
  489.             break;
  490.         case 2202:
  491.             DBErr(".NDX file not open in TfiGetNxt");
  492.             break;
  493.         case 2300:
  494.             DBErr(".NDX file not open in TfiGetlst");
  495.             break;
  496.         case 2301:
  497.             DBErr("No keys in .NDX file in _TfGetLst");
  498.             break;
  499.         case 2302:
  500.             DBErr(".NDX file not open in TfiGetPrv");
  501.             break;
  502.         case 2400:
  503.             DBErr(".NDX file not open in TfiStruct");
  504.             break;
  505.         case 2500:
  506.             DBErr("Low level open error in TfiOpen");
  507.             break;
  508.         case 2502:
  509.             DBErr("Low level read error in TfiOpen");
  510.             break;
  511.         case 2503:
  512.             DBErr(".NDX file not open in TfiClose");
  513.             break;
  514.         case 2504:
  515.             DBErr("Low level flush error in TfiClose");
  516.             break;
  517.         case 2505:
  518.             DBErr("Low level read error in TfiClose");
  519.             break;
  520.         case 2506:
  521.             DBErr("Low level write error in TfiClose");
  522.             break;
  523.         case 2507:
  524.             DBErr("Low level close error in TfiClose");
  525.             break;
  526.         case 2508:
  527.             DBErr(".NDX file not open in TfiFlush");
  528.             break;
  529.         case 2509:
  530.             DBErr("Low level write error in TfiFlush");
  531.             break;
  532.         case 2600:
  533.             DBErr(".NDX file not open in TfiPutKey");
  534.             break;
  535.         case 2601:
  536.             DBErr("Invalid record number in TfiPutKey");
  537.             break;
  538.         case 2603:
  539.         case 2604:
  540.             DBErr("Low level write error in _TfPutKey");
  541.             break;
  542.         case 2602:
  543.         case 2605:
  544.             DBErr("Not enough memory for buffer in _TfPutKey");
  545.             break;
  546.         case 2606:
  547.             DBErr("Low level read error in TfPutLast");
  548.             break;
  549.         case 3000:
  550.             DBErr("Low level write error in _TfGetNode");
  551.             break;
  552.         case 3001:
  553.             DBErr("Not enough memory for buffer in _TfGetNode");
  554.             break;
  555.         case 3002:
  556.             DBErr("Low level read error in _TfGetNode");
  557.             break;
  558.         case 4000:
  559.             DBErr(".DBF file not open in TfdBuf2Ent");
  560.             break;
  561.         case 4001:
  562.             DBErr(".DBF file not open in TfdEnt2Buf");
  563.             break;
  564.         default:
  565.             DBErr("Unknown error in database sub-system");
  566.     }
  567. }
  568.  
  569. VOID CTYP DBErr(ChrP message) {
  570.     //
  571.     //                          Custom error system handler
  572.     // Error_Msg(message);      // Or use whatever you need to call your
  573.     //                             custom error handler
  574.     //
  575.     //                          TCXL basic error system handler
  576.     // Wperror(message);
  577.     //
  578.     //                          DOS error system handler
  579.        perror(message);
  580.     //
  581.     //
  582.     // - Remove comment lines from which-ever system you want to use
  583.     // - if using customized error system, change "Error_Msg(message)" line
  584.     //   to what is required.
  585. }
  586.  
  587.